home *** CD-ROM | disk | FTP | other *** search
- property h_pos, v_pos, mycast, mysprite, state, base_cast
-
- on new me, h, v, mc, ms
- set h_pos to h
- set v_pos to v
- set mycast to mc
- set base_cast to mycast
- set mysprite to ms
- set state to 0
- return me
- end
-
- on update_me me
- global board_list
- if me = 0 then
- return
- end if
- set t to getPos(board_list, me)
- set h_pos to ((t - 1) mod 4 * 70) + 46
- set v_pos to ((t - 1) / 4 * 70) + 41
- set the loc of sprite mysprite to point(h_pos, v_pos)
- end
-
- on change_state me
- if me = 0 then
- return
- end if
- set state to state + 1
- if state = 3 then
- set state to 0
- end if
- set mycast to base_cast + (state * 20)
- set the castNum of sprite mysprite to mycast
- update_me(me)
- end
-
- on move_me me, h, v
- global board_list
- if me = 0 then
- return
- end if
- set t to getPos(board_list, me)
- if h < 3 then
- if getAt(board_list, h + (v * 4) + 1 + 1) = 0 then
- setAt(board_list, h + (v * 4) + 1 + 1, me)
- setAt(board_list, t, 0)
- move_right(me)
- return
- end if
- end if
- if h > 0 then
- if getAt(board_list, h + (v * 4) + 1 - 1) = 0 then
- setAt(board_list, h + (v * 4) + 1 - 1, me)
- setAt(board_list, t, 0)
- move_left(me)
- return
- end if
- end if
- if v > 0 then
- if getAt(board_list, h + ((v - 1) * 4) + 1) = 0 then
- setAt(board_list, h + ((v - 1) * 4) + 1, me)
- setAt(board_list, t, 0)
- move_up(me)
- return
- end if
- end if
- if v < 3 then
- if getAt(board_list, h + ((v + 1) * 4) + 1) = 0 then
- setAt(board_list, h + ((v + 1) * 4) + 1, me)
- setAt(board_list, t, 0)
- move_down(me)
- return
- end if
- end if
- puppetSound(1, "wrong")
- end
-
- on move_down me
- puppetSound(1, "whoosh1")
- repeat with n = 1 to 35
- set the locV of sprite mysprite to the locV of sprite mysprite + 2
- updateStage()
- end repeat
- set v_pos to v_pos + 70
- check_if_right()
- end
-
- on move_up me
- puppetSound(1, "whoosh1")
- repeat with n = 1 to 35
- set the locV of sprite mysprite to the locV of sprite mysprite - 2
- updateStage()
- end repeat
- set v_pos to v_pos - 70
- check_if_right()
- end
-
- on move_left me
- puppetSound(1, "whoosh1")
- repeat with n = 1 to 35
- set the locH of sprite mysprite to the locH of sprite mysprite - 2
- updateStage()
- end repeat
- set v_pos to h_pos - 70
- check_if_right()
- end
-
- on move_right me
- puppetSound(1, "whoosh1")
- repeat with n = 1 to 35
- set the locH of sprite mysprite to the locH of sprite mysprite + 2
- updateStage()
- end repeat
- set v_pos to h_pos + 70
- check_if_right()
- end
-